package com.ebring.shareEducation.service;

import com.ebring.shareEducation.bean.Menu;
import com.ebring.shareEducation.bean.RoleMenu;
import com.ebring.shareEducation.bean.admin.MenuAll;
import com.ebring.shareEducation.bean.response.MenuOperation;
import com.ebring.shareEducation.utils.RspMsg;

import java.util.HashMap;
import java.util.List;

public interface MenuService {
    /**
     * 查找所有菜单
     */
	List<Menu> selectMenu();

    /**
     * 根据菜单id修改菜单
     */
    RspMsg<Menu> updateMenu(Menu menu);

    /**
     * 通过id查找用户
     */
	RspMsg<RoleMenu> selectMenuByMenuId(String menuId,String roleId);

/*	RspMsg<Menu> selectMenuByMenuId(String menuId);*/







	/**
     * 通过ID删除菜单
     */
    RspMsg<Menu> deleteById(String menuId);

    /**
     * 新增菜单
     */
    RspMsg<Menu> insertMenu(Menu menu);

    /**
     * 查询用户拥有的菜单权限
     */

	List<Menu> selectUMenu(String roleId);



    public List<HashMap> selectMenuByRoleId(String roleId);


    public List<HashMap>  updateMenus( String menus,String roleId);

    /**
     * 查询所有界面控件
     * @param menuId
     * @return
     */
	RspMsg<MenuOperation> selectOperation();
    /**
     *根据菜单id查询界面控件
     * @param menuId
     * @return
     */
    RspMsg<Menu> selectOperationById(String menuId);

    /**
     *根据一级查询菜单
     * @param menuGrade
     * @return
     */
	RspMsg<List<MenuAll>> selectMenuGrade();

	/**
	 * 查询下级菜单
	 * @param menuId
	 * @return
	 */
	RspMsg<MenuAll> getLower(String menuId);

	/**
	 * 查询上级菜单
	 * @param parentId
	 * @return
	 */
	RspMsg<MenuAll> getParent(String menuId);

	/**
	 * 模糊查询
	 * @param menuId
	 * @param menuName
	 * @return
	 */
	RspMsg<List<MenuAll>> select(String menuId, String menuName ,String menuGrade,String parentId);

	/**
	 * 查询当前id的所有父级
	 * @param menuId
	 * @return
	 */
	RspMsg<List<MenuAll>> getParentAll(String menuId);
}
